package com.silverbox.waimai.dubboApi.payMotion;

import com.alibaba.fastjson.JSONObject;
import com.silverbox.shopper.entity.PayModel;
import com.silverbox.waimai.entity.OrderPayDetail;
import com.silverbox.waimai.entity.Waimai;
import com.silverbox.waimai.entity.extend.WaimaiExtend;

import java.util.List;
import java.util.Map;

/**
 * <pre>
 * 功    能:
 * 涉及版本:
 * 创 建 者: YangYangjun
 * 日    期: 2020-06-08 14:26
 * </pre>
 */
public interface PayMotionApi {

    void saveOrderPayDetail(OrderPayDetail opd);

    void updateOrderPayDetail(OrderPayDetail opd);

    OrderPayDetail getOrderPayDetailByOrderNumAndPayModel(String orderNum, Integer value);

    OrderPayDetail executeConsumePoints(Waimai waimai, OrderPayDetail orderPayDetail);

    void saveOrderPayDetails(Waimai waimai);

    Double consumePointsInit(Waimai waimai, Integer isConsumePoints);

    void executeRefundPoints(Waimai waimai);

    void cancelVerifyVoucherList(Waimai waimai);

    void executeVouchersVerify(Waimai waimai);

    boolean checkOrderFreeByPoints(Waimai waimai);

    Integer getPayModelByWaimai(Waimai waimai);

    List<OrderPayDetail> getOrderPayDetailByOrderNumOutPayModel(String orderNum, Integer payModel);

    boolean checkOrderPointsEnoughBeforePay(Waimai waimai);

    JSONObject getMemberDeductibleScore(Integer shopId, Integer storeId, String uid);
}
